<?php

/** 
 * @author Andre Reis
 * @copyright 2010
 */

//===============================================================
//
//======================== CLASS Box ============================
//
//  This class create box content.
//
//===============================================================

// INCLUDES 
include_once("Box.php");
include_once("Row.php");


Class ListBox {
    
//===============================================================
//
//======================== GLOBAL VARIABLES =====================
//
//===============================================================

    private $_listBox_array; // Array that store all Boxes
    
    private $_listBox_length;  
    
    private $_elemporpagina = 4; // Set the number of boxes to show for each page
    




 
    
    //===========================================================
    //
    //======================== FUNCTIONS ========================
    //
    //===========================================================
    
    /********************************
    *
    *   $ ListBox - Constructor 
    *
    *********************************/
    function ListBox( $length_num )
    {
        // Check if $length_num is valid  
        if( $length_num < 1 )
        {
            return -1; 
        }
        
        $this->_listBox_length = $length_num;
                
        $this->_listBox_array = array();
        
        for($i = 0 ; $i < $this->_listBox_length ; $i++)
        {
            $this->_listBox_array[] =  new Box();
        }
        
    }//ListBox 
    
    /********************************
    *
    *   $ getBox  
    *
    *********************************/
    function getBox( $index_num )
    {      
        // Invalid $index_num
        if( ($index_num < 0) || ($index_num >= $this->_listBox_length) )
        {
            return -1;             
        }
        
        $box = $this->_listBox_array[$index_num] ;       
        return $box; 
    }//getBox 
    
    /********************************
    *
    *   $ setRowInBox  
    *
    *********************************/
    function setRowInBox( $index_num, $row )
    {      
        // Invalid $index_num
        if( ($index_num < 0) || ($index_num >= $this->_listBox_length) )
        {
            return -1;             
        }
        
        $box = $this->_listBox_array[$index_num] ; 
        
        $box->setTitle($row->_title_str);
        $box->setType($row->_type_str);
        $box->setAuthor($row->_author_str);
        $box->setDescription($row->_description_str);
        $box->setId($row->_id_num);
         
    }//setRowInBox 
            
    
    /********************************
    *
    *          $ jPaginate 
    *
    *********************************/  
    function jPaginate($tot)
    {
        echo <<<END

        
        <script type="text/javascript">

		$(function() {		
			$("#paginar").paginate({
				count 		: $tot,
				start 		: 1,
				display     : 10,
				border					: true,
				border_color			: '#fff',
				text_color  			: '#fff',
				background_color    	: 'black',	
				border_hover_color		: '#ccc',
				text_hover_color  		: '#000',
				background_hover_color	: '#fff', 
				images					: false,
				mouse					: 'press',
                onChange     			: function(page){
											$('._current','#pag').removeClass('_current').hide();
											$('#p'+page).addClass('_current').show();
										  }

			});
		});
		</script>
        
END;

        
    }//jPaginate
    
        
     /********************************
    *
    *          $ showAll 
    *
    *********************************/
    function showAll( )
    {   
      
      if (isset($_SESSION["pagination"])){
      $this->_elemporpagina = (int)$_SESSION["pagination"];
      }

        
        echo("<div id='pag' >");

        $cont = 0;
        $pag = 1;

        $totpag = ceil($this->_listBox_length / $this->_elemporpagina);   
        
         echo("<div id='p$pag' class='pagedemo _current' style=''>");

        for($i = 0 ; $i < $this->_listBox_length ; $i++)
        {
            
            if($i != 0){
                
             if($cont == $this->_elemporpagina){
                $pag = $pag +1;
                echo("</div>"); 
              echo("<div id='p$pag' class='pagedemo' style='display:none'>");
              $cont = 0;
            
            }
           
            }
            
            $cont++;
            $boxAux = $this->_listBox_array[$i];
            $boxAux->show();


        }
        echo("</div>"); 
        
          
        echo <<<END

        
END;
                                                                              
        echo("</div>");   
        
        if ($totpag > 1)     
        $this->jPaginate($totpag);          
    }//showAll
    
    
}// Class

?>